home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 January: Mac OS SDK / Dev.CD Jan 00 SDK2.toast / Development Kits / • Obsolete⁄Unsupported / ScriptX / Code Samples / autofind / source / mainmenu.sx < prev    next >
Encoding:
Text File  |  1996-05-21  |  4.9 KB  |  182 lines  |  [TEXT/ttxt]

  1. --<<<
  2. -- Class AutofinderMenu
  3. in module Autofinder
  4.  
  5. if NOT (isdefined MenuToggle) do filein theScriptDir name:"menutogl.sx"
  6. if NOT (isdefined RangeCriterion) do filein theScriptDir name:"criteria.sx"
  7.  
  8. class AutofinderMenu (TwoDSpace)
  9. instance variables
  10.     media
  11.     background
  12.     models
  13.     years
  14.     prices
  15.     queryCriteria
  16.     control
  17. end
  18.  
  19. method init self {class AutofinderMenu} #rest args #key media: ->
  20. (
  21.     apply nextMethod self args
  22.     
  23.     self.media := media
  24.     self.queryCriteria := undefined
  25.     self
  26.  
  27. method afterinit self {class AutofinderMenu} #rest args ->
  28. (
  29.     local media, background
  30.     
  31.     apply nextMethod self args
  32.  
  33.     media := self.media
  34.  
  35.     background := media["Menu Background"] 
  36.  
  37.     append self background
  38.      self.background := background
  39.  
  40.      self.models := makeModelToggles self media
  41.      self.years := makeYearToggles self media
  42.      self.prices := makePriceToggles self media    
  43.  
  44.     local ac := new actuatorController space:self wholespace:true
  45.     self.control := #(ac)
  46. )
  47.  
  48. method leaveScene self {class AutofinderMenu} -> 
  49. (
  50.     for i in self.control do
  51.         i.space := undefined
  52.     emptyout self.control
  53.  
  54.     emptyout self
  55.     makePurgeable self.background
  56.     self.background := self.models := self.years := self.prices := undefined
  57. )
  58.  
  59. method makeModelToggles self {class AutofinderMenu} media ->
  60. (
  61.     local toggles
  62.     
  63.     local model1 := new menuToggle name:"Station Wagon" x:173 y:163 \
  64.         toggledOffBitmap:(new rect x2:154 y2:21) \
  65.         toggledOnBitmap:media["Station Wagon Hilite"] 
  66.     model1.authordata := "Station Wagon"
  67.     local model2 := new menuToggle name:"Sport-Utility" x:331 y:163 \
  68.         toggledOffBitmap:(new rect x2:144 y2:22) \
  69.         toggledOnBitmap:media["Sport Utility Hilite"]
  70.     model2.authordata := "Sport-Utility"
  71.     local model3 := new menuToggle name:"Sports Car" x:172 y:184 \
  72.         toggledOffBitmap:(new rect x2:122 y2:20) \
  73.         toggledOnBitmap:media["Sports Car Hilite"]
  74.     model3.authordata := "Sports Car"
  75.     local model4 := new menuToggle name:"Convertible" x:294 y:184 \
  76.         toggledOffBitmap:(new rect x2:138 y2:21) \
  77.         toggledOnBitmap:media["Convertible Hilite"]
  78.     model4.authordata := "Convertible"
  79.     local model5 := new menuToggle name:"4-Door Sedan" x:175 y:204 \
  80.         toggledOffBitmap:(new rect x2:73 y2:21) \
  81.         toggledOnBitmap:media["4-Door Hilite"]
  82.     model5.authordata := "4-Door Sedan"
  83.     local model6 := new menuToggle name:"2-Door Sedan" x:250 y:205 \
  84.         toggledOffBitmap:(new rect x2:80 y2:21) \
  85.         toggledOnBitmap:media["2-Door Hilite"]
  86.     model6.authordata := "2-Door Sedan"
  87.  
  88.     toggles := #(model1, model2, model3, model4, model5, model6)
  89.  
  90.     for modelToggle in toggles do (prepend self modelToggle)
  91.     
  92.     toggles    
  93. )
  94.  
  95. method makeYearToggles self {class AutofinderMenu} media ->
  96. (
  97.     local toggles
  98.     
  99.     local year1 := new menuToggle name:"1986" x:289 y:265 \
  100.         toggledOffBitmap:(new rect x2:132 y2:20) \
  101.         toggledOnBitmap:media["1986 Hilite"] 
  102.     year1.authordata := (1986 to 1989)
  103.     local year2 := new menuToggle name:"1990" x:289 y:285 \
  104.         toggledOffBitmap:(new rect x2:130 y2:20) \
  105.         toggledOnBitmap:media["1990 Hilite"]
  106.     year2.authordata := (1990 to 1992)
  107.     local year3 := new menuToggle name:"1993" x:288 y:304 \
  108.         toggledOffBitmap:(new rect x2:145 y2:23) \
  109.         toggledOnBitmap:media["1993 Hilite"]
  110.     year3.authordata := (1993 to 2000)
  111.  
  112.     toggles := #(year1, year2, year3)
  113.  
  114.     for yearToggle in toggles do (prepend self yearToggle)
  115.     
  116.     toggles    
  117. )
  118.  
  119. method makePriceToggles self {class AutofinderMenu} media ->
  120. (
  121.     local toggles
  122.     
  123.     local price1 := new menuToggle name:"5K" x:211 y:363 \
  124.         toggledOffBitmap:(new rect x2:125 y2:20) \
  125.         toggledOnBitmap:media["5K Hilite"] 
  126.     price1.authordata := (0 to 5000)
  127.     local price2 := new menuToggle name:"10K" x:209 y:382 \
  128.         toggledOffBitmap:(new rect x2:145 y2:21) \
  129.         toggledOnBitmap:media["10K Hilite"]
  130.     price2.authordata := (5000 to 10000)
  131.     local price3 := new menuToggle name:"15K" x:208 y:403 \
  132.         toggledOffBitmap:(new rect x2:151 y2:22) \
  133.         toggledOnBitmap:media["15K Hilite"]
  134.     price3.authordata := (10000 to 100000)
  135.  
  136.     toggles := #(price1, price2, price3)
  137.  
  138.     for priceToggle in toggles do (prepend self priceToggle)
  139.     
  140.     toggles    
  141. )
  142.  
  143. method getSelectedItems self {class AutofinderMenu} toggleList ->
  144. (
  145.     -- Get the selected toggles, and add return the resulting names
  146.     local selectedItems := chooseAll toggleList (toggle dummy -> \
  147.         (toggle.toggledOn)) undefined
  148.     local selectedItemsNames := (for item in selectedItems collect item.authordata)
  149.     return selectedItemsNames
  150. )
  151.  
  152. method getQueryCriteria self {class AutofinderMenu} ->
  153. (
  154.     local selections, criteria, range
  155.     
  156.     criteria := new KeyedLinkedList
  157.     
  158.     selections := getSelectedItems self self.models
  159.     add criteria @classification selections
  160.  
  161.     selections := getSelectedItems self self.years
  162.     range := new RangeCriterion ranges:selections
  163.     add criteria @year range
  164.  
  165.     selections := getSelectedItems self self.prices
  166.     range := new RangeCriterion ranges:selections
  167.     add criteria @price range
  168.     
  169.     self.queryCriteria := criteria
  170.     
  171.     return criteria
  172. )
  173.  
  174. --method purgeObject self {class AutofinderMenu} ->
  175. --(
  176. --    print "purging"
  177. --)
  178.  
  179. "Compiled mainMenu.sx"
  180. -->>>
  181.